Due to inaccuracies during the programming procedure and charge loss due to time and temperature (also known as retention), the measured levels during a Read operation suffers from detection errors. The small dimensions of the Flash cells result in cells that can store very small amounts of charge, enhancing the effects of inaccuracies due to programming and retention. Thus, new single level cells (SLC) and multi level cells (MLC) devices have significantly increased bit error rate (BER), decreasing the reliability of the device.
BER is a parameter that a flash memory device manufacturer commits to vis a vis its customers, expressing the maximum proportion of wrongly read bits (wrongly read bits/total number of bits) that users of the flash memory device need to expect at any time during the stipulated lifetime of the flash memory device e.g. 10 years.
MLC means that the physical levels in the cell are, to an acceptable level of certainty, statistically partitionable into multiple distinguishable regions, plus a region corresponding to zero, such that digital values each comprising multiple bits can be represented by the cell. In contrast, in single-level cells, the physical levels in the cell are assumed to be statistically partitionable into only two regions, one corresponding to zero and one other, non-zero region, such that only one bit can be represented by a single-level cell.
Flash devices are organized into (physical) pages. Each page contains a section allocated for data (512 bytes-8 Kbytes) and a small amount of bytes (16-32 bytes for every 512 data bytes) containing redundancy and back pointers. The redundancy bytes are used to store error correcting information, for correcting errors which may have occurred during the page Read. Each Read and Program operation is performed on an entire page. A number of pages are grouped together to form an Erase Block (EB). A page cannot be erased unless the entire EB which contains it is erased.
An important measure of a Flash device quality is the number of times (Np) it may be reprogrammed and the period that it can store information (usually 10 years) before irrecoverable errors occur.
The higher the number of program-erase cycles, the higher the BER. Thus, today's MLC with 2 bits per cell devices can perform around Np=10,000 cycles and 10 years retention before the allocation of 16 bytes of redundancy per 512 bytes of data bytes becomes insufficient to correct errors.
SLC devices usually perform better but obtain a much lower density and hence their prices are much higher. Note that following Np program-erase cycles the device is still operational but the BER is higher.
One factor that increases the number of program-erase cycles is the fact that an entire block must be erased at once. For example, when a single page of a programmed block is to be modified, in many cases (e.g. SD cards and USB drives), the block is copied to an erased block and the relevant page is replaced in the process. Thus, a single page change required the programming of an entire block and an erasure of a block. This process is usually referred to as a read modify write operation.